package com.itheima.global;

import com.itheima.common.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/*
 * 全局异常处理器
 * 程序中所有异常都会被这个方法处理,因此返回值和方法的返回值类型一定要和ControllerAdvice中定义的返回值类型一致
 * */
@Slf4j
@RestControllerAdvice
public class GolbalExceptionHandler {
    //    一个方法处理一种异常
    @ExceptionHandler(NullPointerException.class)
    public R handleException(NullPointerException e) {
//        将错误信息响应到控制台
        e.printStackTrace();
        //空指针异常

        //将错误信息交给前端
        return R.error(e.getMessage());
    }

    @ExceptionHandler(RuntimeException.class)
    public R handleException(RuntimeException e) {
        e.printStackTrace();

        //将错误信息交给前端
        return R.error(e.getMessage());
    }

    @ExceptionHandler(Exception.class)
    public R handleException(Exception e) {

        e.printStackTrace();

        //将错误信息交给前端
        return R.error(e.getMessage());
    }
}
